package com.example.plan.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.example.plan.common.PageRequest;
import com.example.plan.common.result.Result;
import com.example.plan.model.dto.userAddress.UserAddressDTO;
import com.example.plan.model.vo.UserAddressVO;
import com.example.plan.model.entity.UserAddress;

import java.util.List;


public interface UserAddressService extends IService<UserAddress> {

    /**
     * 保存用户地址
     * @param dto 用户地址信息
     */
    Result<Void> saveUserAddress(UserAddressDTO dto);

    /**
     * 删除用户地址
     * @param addressId 地址id
     * @return void
     */
    Result<Void> deleteUserAddress(Long addressId);

    /**
     * 更新用户地址
     * @param dto 用户地址信息
     */
    Result<Void> updateUserAddress(UserAddressDTO dto);

    /**
     * 查询用户地址
     * @param pageRequest 分页参数
     * @return 用户地址列表
     */
    Result<IPage<UserAddressVO>> selectUserAddress(PageRequest pageRequest);
}